JAVA游戏之碰撞检测
碰撞检测的过程处理主要有以下三步:
- 碰撞检测(Collision Detection):返回两个或多个物体是否发生碰撞的布尔判断。
- 碰撞确定(Collision Determination):找到物体之间实际相交位置。
- 碰撞响应(Collision Response):针对两个物体之间的碰撞决定采取何种操作。
矩形碰撞检测
- 游戏中的物体形状一般为矩形,这是规则图形。它的碰撞检测可以通过Java API中的Rectangle类来实现碰撞的检测。
Rectangle 指定坐标空间中的一个区域,通过坐标空间中 Rectangle 对象左上方的点 (x,y)、宽度和高度可以定义这个区域。 - 其构造函数Rectangle(int x, int y, int width, int height)
- height Rectangle 对象的高度。
- width Rectangle 对象的宽度。
- x Rectangle 对象左上角的 X 坐标。
- y Rectangle 对象左上角的 Y 坐标。
碰撞检测相关的方法:
// 计算此 Rectangle 与指定 Rectangle 的交集
public Rectangle intersection(Rectangle r)
// 确定此 Rectangle 是否与指定的 Rectangle 相交
public Rectangle intersects(Rectangle r)
如果两个Rectangle对象有交集,那么他们就有碰撞了
适用于在精确度要求不高时的碰撞检测
eg.